1. Field of the Invention
The present invention relates to transmission codes and, more particularly, to a system and method for transforming uncoded parallel interfaces into coded format while maintaining a baud-rate of the parallel interface.
2. Description of Related Art
It is standard practice to connect chips located close together with a number of parallel lines accompanied by a clock line and other control lines. If these links extend across card or box boundaries, the raw data is usually coded for DC-balance and run-length limitation to facilitate AC-coupling, fiber-optic receiver design and clock recovery. Also, the reduced content of low frequency spectral components in the coded signals results in lower signal distortion than is normally incurred on transmission lines. The remaining, unavoidable distortion can be more readily compensated for coded signals by a variety of known techniques, such as, for example, digital predistortion according to U.S. Pat. No. 3,980,826, to Widmer, entitled, xe2x80x98Means of Predistorting Digital Signalsxe2x80x99 which is incorporated herein by reference. However, these advantages can only be obtained by a reduced information content per bit transmitted because some bit patterns are not permissible. Typically, it takes more bits to transmit a given amount of information in coded form. This deficiency is usually compensated by a higher transmission rate. For information transfers at lower rates, coded data from parallel lines is typically multiplexed into a single high speed line, e.g. data from eight parallel lines operated at a 100 MHz rate is coded into ten bits, serialized and transmitted at 1 Gbaud, ten times the parallel rate, on a single serial line. Now, if the parallel rate reaches 2 GHz, this technique becomes difficult to implement. Conventional systems are practical for lower transmission rates. For example, a twenty line parallel input operated at a 400 MHz rate, may be encoded with a 4B/5B code, and transmitted on twenty lines operated at a rate of 500 Mbaud.
For high performance levels, the known approaches are not acceptable. As an example, for ten parallel lines to be operated at a higher rate, say 2 Gbaud, coding is necessary across card boundaries and may be helpful for transmission lines extending over tens of inches entirely on a card and causing noticeable signal deterioration. Links of up to a few meters distance use small gauge copper cables, and the longer links use fiber-optic technology to connect between a transmitter and a receiver. An increased transmission rate at 2.5 Gbaud would reduce the maximum range of both the low cost copper technology and the moderate-cost multimode fiber technology. Further, the increased transmission rate requires the addition of unwieldy extra clock systems to the transmitter and receiver and increases the performance requirements for the circuit technology.
Therefore, a need exists for a system and method for transmitting parallel data at higher transmission rates. A further need exists for a system which preserves a data rate from the uncoded parallel interface to a coded parallel interface by providing extra bandwidth with additional lines for the required code redundancy.
A method of coding parallel data for transmission while maintaining baud rate in accordance with the present invention includes the steps of providing a plurality of uncoded data blocks having a predetermined baud rate, demultiplexing the data blocks to sequentially distribute the data blocks to encoders, encoding the data blocks at the demultiplexed rate and serializing the coded data blocks for serially transmitting data at the predetermined baud rate.
In other methods, the step of demultiplexing may include the steps of providing a control signal with data from the data blocks to registers and dividing the data blocks in the registers into two groups and sending one group and the control signal to each encoder. The step of demultiplexing may also include the steps of providing a clock signal to synchronize the registers and sequencing the registers to provide a patterned data stream for transmitting the data blocks. The step of encoding may include the step of encoding each data block by providing a pair of encoders. The step of transforming the uncoded data blocks from a 10 line uncoded input format at an input to a 12 line coded transmission at an output for transmitting the coded data blocks is preferably included. The step of transmitting coded data blocks on a plurality of transmission links is also included.
In still other methods, the step of adjusting transmission delay by a dynamically adjustable delay in each transmission link may be included. The step of retiming coded data blocks on each link with a dedicated adjustable clock, and the step of eliminating skew among the links by providing a second retiming of data transferred on the links at a rate less than the predetermined baud rate with a clock system shared by all links may be included. The steps of receiving transmitted coded data blocks from the transmission lines at a receiver end is preferably included. The step of checking disparity to determine errors in the data blocks at the receiver end may be included. The step of encoding may further include the steps of outputting data blocks from each encoder to a disparity register and inputting disparity data from each disparity register to the encoder associated the disparity register to create a running disparity check of the data blocks. Further steps may include such as deserializing the serially transmitted coded data blocks at a receiver end to provide parallel coded data blocks, decoding the data blocks at a deserialized rate, the deserialized rate being lower than the predetermined baud rate and multiplexing the decoded data blocks to provide parallel data blocks at the predetermined baud rate. Each uncoded data block may include 10 bits and the predetermined baud rate may be greater than or equal to about 2 Gbaud.
A system for coding parallel data for transmission while maintaining baud rate includes a data input for inputting a plurality of data blocks having a predetermined baud rate. A demultiplexer is coupled to the data input for sequentially distributing the data blocks, and a plurality of encoders is coupled to outputs of the demultiplexer for encoding the data blocks distributed by the demultiplexer at a demultiplexed rate, the demultiplexed rate being lower than the predetermined baud rate. A plurality of serializers is included, each coupled to one of the encoders, for serializing coded data blocks output from the encoder at the predetermined baud rate, wherein the predetermined baud rate is maintained by providing an adequate number transmission links. Disparity control means is coupled to each encoder for maintaining an average of equal numbers of coded bits with a value of one or zero.
In alternate embodiments of the system, the demultiplexer may include registers for dividing the data blocks in the registers into two groups and sending one group and a control signal to one of two encoders associated with each register. The demultiplexer may further include a clock for providing clock signals to synchronize the registers to provide a patterned data stream for transmitting the coded data blocks. The encoders are preferably 5B/6B encoders. A plurality of transmission links may be included, coupled to the serializers for transmitting serial data-to a receiver. A plurality of deserializers to deserialize the serially transmitted encoded data blocks at a receiver end, a plurality of decoders for decoding the data blocks at a deserialized rate which is lower than the predetermined baud rate and a multiplexer for sequencing the decoded data blocks to provide parallel data blocks at the predetermined baud rate may all be included. A pair of coded data blocks may be concentrated on a transmission link such that the data blocks generate a singular synchronizing comma sequence. A transmission delay adjusting device may be included for sampling and retiming the coded data blocks on transmission lines or links. The predetermined baud rate is preferably greater than or equal to about 2 Gbaud. The input data blocks may include 10 bits each.
Another system for providing uniform data transmissions between electronic devices while maintaining baud rate includes a data input for inputting a plurality of 10-bit data blocks having a predetermined baud rate. A demultiplexer is coupled to the data input for sequentially distributing the data blocks among outputs of the demultiplexer. A pair of 5B/6B encoders are coupled to each of the outputs of the demultiplexer for encoding the data blocks distributed by the demultiplexer at a rate lower than the predetermined baud rate. A serializer is coupled to each of the encoders, for serializing coded data blocks output from the encoder at the predetermined baud rate. A transmission line is coupled to each serializer for transferring data to a receiver. Disparity checking means includes for determining errors in the received data blocks, the disparity checking means including a register being coupled to each decoder, and a timing means is included for sequencing data blocks to the encoders in accordance with the predetermined baud rate.
In alternate embodiments, the demultiplexer may include registers for dividing the data blocks in the registers into two groups and sending one group and a control signal to one of two encoders associated with each register. The timing means may include a clock for providing clock signals to synchronize registers provided in the demultiplexer to provide a patterned data stream for transmitting the data blocks. A deserializer may be coupled to each transmission line on a receiver end to deserialize serially transmitted encoded data blocks at the receiver end to provide parallel coded data blocks. A decoder may be coupled to the deserializers for decoding the encoded data blocks at a rate lower than the predetermined baud rate. A multiplexer for sequencing the data blocks may provide parallel data blocks at the predetermined baud rate. A transmission delay adjusting device may be included for sampling and retiming transmission rates for the serially transmitted data on the transmission lines. The predetermined baud rate may be greater than or equal to about 2 Gbaud. Transmitted data blocks may be conditioned by digital or analog preemphasis to reduce distortion.